package com.moxiao.yfjh.module.blind.controller.admin.member.vo;

import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;

import static com.moxiao.yfjh.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

/**
 * 相亲会员用户 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 */
@Data
public class BlindMemberUserBaseVO {

    @Schema(description = "会员编码")
    private String no;

    @ExcelProperty("用户编码")
    private String userNo;

    @Schema(description = "用户管理表id")
    private Long users;

    @Schema(description = "手机号", requiredMode = Schema.RequiredMode.REQUIRED)
    private String mobile;

    @Schema(description = "密码")
    private String password;

    @Schema(description = "分销员")
    private String distributors;

    @Schema(description = "年龄")
    private Integer age;

    @Schema(description = "在线状态 0不在线 1在线")
    private Byte pesence;

    @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Byte status;

    @Schema(description = "注册 IP", requiredMode = Schema.RequiredMode.REQUIRED)
    private String registerIp;

    @Schema(description = "最后登录IP")
    private String loginIp;

    @Schema(description = "最后登录时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime loginDate;

    @Schema(description = "用户性别")
    private Byte sex;

    @Schema(description = "所在地", example = "12256")
    private String areaId;

    @Schema(description = "出生日期")
    private String birthday;

    @Schema(description = "身高")
    private String height;

    @Schema(description = "体重")
    private String weight;

    @Schema(description = "学历")
    private String education;

    @Schema(description = "婚姻状况", requiredMode = Schema.RequiredMode.REQUIRED)
    private String marriage;

    @Schema(description = "月收入")
    private String monthIncome;

    @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
    private String nickname;

    @Schema(description = "头像", requiredMode = Schema.RequiredMode.REQUIRED)
    private String avatar;

    @Schema(description = "审核头像")
    private String auditAvatar;

    @Schema(description = "真实名字", example = "芋艿")
    private String name;

    @Schema(description = "身份证号")
    private String idNumber;

    @Schema(description = "内心独白")
    private String innerMonologue;

    @Schema(description = "关于我")
    private String aboutMe;

    @Schema(description = "职业")
    private String career;

    @Schema(description = "籍贯")
    private String nativePlace;

    @Schema(description = "会员用户等级 0普通会员 1超级会员")
    private Byte userLevel;

    @Schema(description = "购房情况")
    private Byte purchasHouse;

    @Schema(description = "购车情况")
    private Byte purchasCar;

    @Schema(description = "有没有孩子")
    private Byte withChild;

    @Schema(description = "是否想要孩子")
    private Byte wantChild;

    @Schema(description = "何时结婚")
    private String marryDate;

    @Schema(description = "是否吸烟")
    private Byte smoker;

    @Schema(description = "是否喝酒")
    private Byte drink;

    @Schema(description = "是否是会员")
    private Byte haveMember;

    @Schema(description = "会员开始时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime memberBeginTime;

    @Schema(description = "会员结束时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime memberEndTime;

    @Schema(description = "民族")
    private String nation;

    @Schema(description = "地理位置")
    private String position;

    @Schema(description = "微信openId")
    private String wxOpenId;

    @Schema(description = "星座")
    private String constellation;

    @Schema(description = "择偶年纪")
    private String matchAge;

    @Schema(description = "择偶身高")
    private String matchHeight;

    @Schema(description = "择偶月收入")
    private String matchIncome;

    @Schema(description = "择偶学历")
    private String matchEducation;

    @Schema(description = "择偶婚姻状况")
    private String matchMarriage;

    @Schema(description = "择偶工作地区")
    private String matchWorkArea;

    @Schema(description = "择偶有没有孩子")
    private Byte matchWithChild;

    @Schema(description = "择偶是否想要孩子")
    private Byte matchWantChild;

    @Schema(description = "择偶是否吸烟")
    private Byte matchSmoker;

    @Schema(description = "择偶是否喝酒")
    private Byte matchDrink;

    @Schema(description = "头像审核状态（0未审核 1已通过 2已驳回）", example = "1")
    private Byte auditStatus;

    @Schema(description = "头像审核人")
    private String auitUser;

    @Schema(description = "头像审核时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime auitTime;

    @Schema(description = "头像驳回原因", example = "不好")
    private String rejectReason;

    @Schema(description = "是否购买超级推荐")
    private Byte haveRecommend;

    @Schema(description = "超级推荐开始时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime recommendBegin;

    @Schema(description = "超级推荐结束时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime recommendEnd;

    @Schema(description = "超级推荐购买次数")
    private String recommendNum;

    @Schema(description = "是否实名")
    private Byte haveReal;
    /**
     * 头像认证：0=未认证，1=认证成功，2=认证失败
     */
    @Schema(description = "头像认证：0=未认证，1=认证成功，2=认证失败", example = "0")
    private Byte avatarAuth;

    @Schema(description = "月亮星座")
    private String moonConstell;

    @Schema(description = "月亮星座")
    private String moonConstellName;

    @Schema(description = "上升星座")
    private String ascendantConstell;

    @Schema(description = "上升星座")
    private String ascendantConstellName;

    @Schema(description = "属相")
    private String zodiacSign;

    @Schema(description = "毕业院校")
    private String graduatFrom;

    @Schema(description = "学历证编码")
    private String educationCode;

}
